package tests;

import org.xml.sax.*;
import org.xml.sax.helpers.ParserFactory;
import java.io.*;
import utiles.CarteXMLHandler;


/**
 * Classe de test du parseur XML de carte
 * 
 * @author Thomas Folgueral
 * @author Julien Pernot
 * @author Guillaume Peyet
 * @author Guillaume Sainthillier
 */
public class ParseurCarte {

    static String DONNEES_XML = "";
    static final String CLASSE_PARSER = "org.apache.xerces.parsers.SAXParser";

    /**
     * @param args un tableau d'arguments de ligne de commande
     */
    public static void main(String[] args) {

        BufferedReader br;
        try {
            br = new BufferedReader(new FileReader(new File("./src/utiles/carte.xml")));
            String line;
            StringBuilder sb = new StringBuilder();

            while ((line = br.readLine()) != null) {
                sb.append(line.trim());
            }
            DONNEES_XML = sb.toString();
            ParseurCarte m = new ParseurCarte();
            m.parse();
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        System.exit(0);
    }

    public void parse() {
        CarteXMLHandler handler = new CarteXMLHandler();

        System.out.println("Lancement du parseur");

        try {
            Parser parser = ParserFactory.makeParser(CLASSE_PARSER);

            parser.setDocumentHandler(handler);
            parser.setErrorHandler((ErrorHandler) handler);

            parser.parse(new InputSource(new StringReader(DONNEES_XML)));

        } catch (ClassNotFoundException | IllegalAccessException | InstantiationException | ClassCastException | SAXException | IOException e) {
            System.out.println("Exception capturée : ");
            e.printStackTrace(System.out);
        }
    }
}
